gusucode.com > 现代通信系统——使用MATLAB(+全部程序) > 现代通信系统——使用MATLAB(+全部程序)/现代通信系统——使用MATLAB(+全部程序)/Matlab 程序/Chapter5/Smldpe55.m
function [p]=smldPe55(snr_in_dB) % [p]=smldPe55(snr_in_dB) % SMLDPE55 simulates the probability of error for the particular % value of snr_in_dB, signal-to-noise ratio in dB. E=1; SNR=exp(snr_in_dB*log(10)/10); % signal-to-noise ratio sgma=E/sqrt(2*SNR); % sigma, standard deviation of noise N=10000; % Generation of the binary data source follows. for i=1:N, temp=rand; % a uniform random variable over (0,1) if (temp<0.5), dsource(i)=0; % With probability 1/2, source output is 0. else dsource(i)=1; % With probability 1/2, source output is 1. end end; % The detection, and probability of error calculation follows. numoferr=0; for i=1:N, % the matched filter outputs if (dsource(i)==0), r=-E+gngauss(sgma); % if the source output is "0" else r=E+gngauss(sgma); % if the source output is "1" end; % Detector follows. if (r<0), decis=0; % Decision is "0". else decis=1; % Decision is "1". end; if (decis~=dsource(i)), % If it is an error, increase the error counter. numoferr=numoferr+1; end; end; p=numoferr/N; % probability of error estimate